// pages/takephoto/index.js
Page({

  /**
   * 页面的初始数据
   */
  data: {
    authCamera: false,//用户是否运行授权拍照
    imgSrc: ''
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {

  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {
    // wx.getSetting({
    //   success: (res) => {
    //     if (res.authSetting["scope.camera"]) {
    //         this.setData({
    //           authCamera:true,
    //         })
    //     } else {
    //       this.setData({
    //         authCamera:false,
    //       })
    //     }
    //   }
    // });

    // 获取相机授权设置---有这个则需要在camera组件上加上是否授权判断，已授权则初始化相机展示，否则会调用error事件，调出多个授权
    wx.getSetting({
      success: (res) => {
        if (res.authSetting["scope.camera"]) {
          this.setData({
            authCamera: true,
          })
        } else {
          wx.authorize({
            scope: 'scope.camera',
            success: () =>{
              // 同意授权摄像头
              this.setData({
                authCamera: true,
              })
            },
            fail: (err) => {
              console.log(err);
              this.userAuthFail('scope.camera', '请授权摄像头权限，否则无法扫描').then(authCameraRes => {
                console.log(authCameraRes);
                this.setData({
                  authCamera: authCameraRes,
                })
              }).catch(authCameraErr => {
                console.log(authCameraErr);
                wx.showToast({
                  title: authCameraErr,
                  icon: 'none',
                  duration: 2000,
                  success: () => {
                    setTimeout(() => {
                      wx.navigateBack()
                    }, 2000)
                  }
                })
              })
            }
          })
        }
      }
    });
  },

  /**
  * 用户拒绝授权
  * @param {string} scope 需授权的权限
  * @param {string} tip 权限对应的提示
  */
  userAuthFail(scope, tip) {
    return new Promise((resolve, reject) => {
      wx.showModal({
        title: '提示',
        content: tip,
        confirmText: '去授权',
        cancelText: '不授权',
        success(res) {
        if (res.confirm) {
          wx.openSetting({
            success: (res) => {
              resolve(res.authSetting[scope])
            }
          })
        }
        if (res.cancel) {
          reject('您拒绝了授权')
        }
        },
      })
    })
  },

  takePhoto:function() {
    //拍摄照片
    wx.createCameraContext().takePhoto({
      quality: 'high',//拍摄质量(high:高质量 normal:普通质量 low:高质量)
      success: (res) => {
        //拍摄成功
        var file = res.tempImagePath;
        console.log(file)
        this.setData({imgSrc: file})
      },
      fail: (res) => {
        //拍摄失败
      },
    })
  },

  // handleCameraError:function() {
  //   wx.showToast({
  //     title:'用户拒绝使用摄像头',
  //     icon: 'none'
  //   })
  // },

  // 用户不允许使用摄像头时触发
  handleCameraError:function(e) {
    console.log(e);
    const that = this
    if (e.detail.errMsg == "未找到摄像头") {
      wx.showToast({
        title: '您的设备暂不支持使用摄像头',
        icon: 'none'
      })
      return
    }
    wx.showModal({
      title: '提示',
      showCancel: false,
      content: '请授权摄像头权限，否则无法拍照',
      confirmText: '授权',
      success(res) {
        if (res.confirm) {
          wx.openSetting({
            success: (res) => {
              if (res.authSetting["scope.camera"]) {
                that.setData({
                  authCamera: true
                })
              } else {
                that.setData({
                  authCamera: false
                })
              }
            }
          })
        }
      }
    })
  },

  scanPhoto(){
    
  },
})